
// MFC_DemoRecorderDlg.h : header file
//

#pragma once

#include <sstream>

#if defined(_UNICODE)
#define TSS std::wstringstream
#define TString std::wstring
#else
#define TSS std::stringstream
#define TString std::string
#endif



// CMFC_DemoRecorderDlg dialog
class CMFC_DemoRecorderDlg : public CDialogEx
{
public:
	const UINT_PTR m_timerId = 100;
	bool m_bRecording;
	HWND m_hTransparentWnd;

// Construction
public:
	CMFC_DemoRecorderDlg(CWnd* pParent = NULL);	// standard constructor
	~CMFC_DemoRecorderDlg();

// Dialog Data
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_MFC_DEMORECORDER_DIALOG };
#endif

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support


// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnBnClickedButton1();
};

class CTransparentWnd : public CFrameWnd
{
	//DECLARE_DYNCREATE(CTransparentWnd)

public:
	CTransparentWnd();
	virtual ~CTransparentWnd();

public:
	static HHOOK hhookMs;
	static LRESULT CALLBACK LowLevelMouseProc(INT nCode, WPARAM wParam, LPARAM lParam);
	static BOOL UninstallKbHook();
	static BOOL InstallKbHook();

protected:
	DECLARE_MESSAGE_MAP()
public:
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnDestroy();
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
};